Load-Time Structural Reflection in Java
نویسنده
چکیده
The standard reflection API of Java provides the ability to introspect a program but not to alter program behavior. This paper presents an extension to the reflection API for addressing this limitation. Unlike other extensions enabling behavioral reflection, our extension called Javassist enables structural reflection in Java. For using a standard Java virtual machine (JVM) and avoiding a performance problem, Javassist allows structural reflection only before a class is loaded into the JVM. However, Javassist still covers various applications including a language extension emulating behavioral reflection. This paper also presents the design principles of Javassist, which distinguish Javassist from related work.
منابع مشابه
Reflection Support: Java Reflection Made Easy
Large software projects often require the ability to load and manage new code assets that were not originally available during system compilation. Moreover, testing tools need to inspect and run code components regardless of their structures. Reflection in Java supports these tasks by providing programmers with facilities to dynamically create objects, invoke methods, access fields, and perform...
متن کاملKava - Using Byte code Rewriting to add Behavioural Reflection to Java
Many authors have proposed using byte code rewriting as a way of adapting or extending the behaviour of Java classes. There are toolkits available that simplify this process and raise the level of abstraction above byte code. However, to the best of our knowledge, none of these toolkits provide a complete model of behavioural reflection for Java. In this paper, we describe how we have used load...
متن کاملUSENIX Association Proceedings of the 6 th USENIX Conference on Object - Oriented Technologies and Systems
Many authors have proposed using byte code rewriting as a way of adapting or extending the behaviour of Java classes. There are toolkits available that simplify this process and raise the level of abstraction above byte code. However, to the best of our knowledge, none of these toolkits provide a complete model of behavioural reflection for Java. In this paper, we describe how we have used load...
متن کاملntrospective-SystemC: Reflection and Introspection in System Level Design
Reflection is an increasingly important feature in software systems as evidenced by introduction of datatype reflection abilities in Java, RTTI runtime type information reflection package for C++, and reflection service in .NET environment. Since systems being designed today are supposed to self-configure, self-heal and make a lot more intelligent decisions about itself, including versioning, f...
متن کاملSafe uniform proxies for Java
The proxy abstraction has a long-lasting tradition in object-oriented programming. From design patterns to inherent programming language support, from remote method invocations to simple forms of behavioral reflection – incarnations as well as applications of proxies are innumerable. Since version 1.3, Java supports the concept of dynamic proxy. Such an object conforms to a set of types specifi...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2000